昨天教完各位如何編輯完資料之後,今天會教各位怎麼排序資料。
先建立一個 sort 然後是 Bool 型別的,然後在建立一個按鈕用來表示資料要從 小/大 開始排序。
ToolbarItem(placement: .navigationBarLeading) {
    Button() {
        sort.toggle()
    } label: {
        Image(systemName: "arrow.up.arrow.down")
            .fontWeight(.light)
            .font(.system(size: 18))
    }
}
我們先定義一個變數 sort 是一個 Bool 型態。然後在 init 裡面多打一些程式碼
SortDescriptor 是用來定義如何對一個物件陣列進行排序的工具。在 Swift 中,它通常用於以下目的:
指定排序的依據:通過提供一個鍵路徑(key path)來確定要根據哪個屬性進行排序。
決定排序順序:可以設定升序或降序排列。
init(style: String, sort: Bool) {
    self.style = style
    self.sort = sort
    let predicate = #Predicate<DataModel> { data in
        data.style == style
    }
    var sortDescriptor: [SortDescriptor<DataModel>] {
        if sort {
            return [SortDescriptor(\DataModel.name)] // 升序
        } else {
            return [SortDescriptor(\DataModel.name, order: .reverse)] // 降序
        }
    }
    _datas = Query(filter: predicate, sort: sortDescriptor)
}
SwiftData 會使用到的 CRUD 已經學會了,剩下的新增跟刪除給各位想想該怎麼實現,但是基本上都是相同的方式。